
package com.huaweicloud.saaslanding.install.properties;

import static com.huaweicloud.saaslanding.install.constant.ModelConstant.SSL_STRATEGY_PREFIX;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

/**
 * 云服务SSL认证策略
 *
 * @since 2022-08-25
 */
@EqualsAndHashCode
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@Validated
@ConfigurationProperties(prefix = SSL_STRATEGY_PREFIX)
public class SslStrategy {

    /**
     * CCE SSL认证策略
     */
    @NotNull
    private int cce;

    /**
     * LTS SSL认证策略
     */
    @NotNull
    private int lts;

    /**
     * CES SSL认证策略
     */
    @NotNull
    private int ces;

    /**
     * AOM SSL认证策略
     */
    @NotNull
    private int aom;

    /**
     * DCS SSL认证策略
     */
    @NotNull
    private int dcs;

    /**
     * RDS SSL认证策略
     */
    @NotNull
    private int rds;

    /**
     * IAM SSL认证策略
     */
    @NotNull
    private int iam;

    /**
     * SMN SSL认证策略
     */
    @NotNull
    private int smn;

    /**
     * CSE SSL认证策略
     */
    @NotNull
    private int cse;

    /**
     * ECS SSL认证策略
     */
    @NotNull
    private int ecs;

    /**
     * IMC SSL认证策略
     */
    @NotNull
    private int imc;

    /**
     * ELB SSL认证策略
     */
    @NotNull
    private int elb;

    /**
     * OneAccess SSL认证策略
     */
    @NotNull
    private int oneaccess;

    /**
     * Keycloak SSL认证策略
     */
    @NotNull
    private int keycloak;

    /**
     * DNS SSL认证策略
     */
    @NotNull
    private int dns;

    /**
     * VPC SSL认证策略
     */
    @NotNull
    private int vpc;

    /**
     * WAF SSL认证策略
     */
    @NotNull
    private int waf;

    /**
     * GaussDB SSL认证策略
     */
    @NotNull
    private int gaussDb;

    /**
     * CDN SSL认证策略
     */
    @NotNull
    private int cdn;
}
